
/**
 * 下载附件
 * @param  {Object} obj 参数对象
 * @param  {String} obj.fileName 想要保存的文件名称
 * @param  {String} obj.url 下载地址
 * @param  {Object} obj.blob blob文件
 *
 */
export function saveAs({ url, blob, fileName }) {
  if (!url && !blob) {
    throw new Error('没有指定下载内容 url | blob')
  }
  if (!fileName) {
    throw new Error('没有指定 fileName')
  }

  var link = document.createElement('a');
  var body = document.querySelector('body');

  if (url) {
    link.href = url;
  } else if (blob) {
    link.href = window.URL.createObjectURL(blob);
  }
  link.download = fileName;
  link.target = '_blank';

  // fix Firefox
  link.style.display = 'none';
  body.appendChild(link);

  link.click();
  body.removeChild(link);

  if (!url && blob) {
    window.URL.revokeObjectURL(link.href);
  }
}

export default saveAs;
